package cn.ceplc.nlu.admin.aspect;


//@Aspect
//@Component
//@Configuration
//public class RepositoryAspect {
//
//    private static final String createBy = "createBy";
//
//    private static final String createTime = "createTime";
//
//    private static final String updateBy = "updateBy";
//
//    private static final String updateTime = "updateTime";
//
//    @Pointcut("execution(* cn.ceplc.nlu.*.repository.*.insert*(..))")
//    public void repositoryCreate() { }
//
//    @Pointcut("execution(* cn.ceplc.nlu.*.repository.*.save*(..))")
//    public void repositoryUpdate() {}
//
//    @Around("repositoryCreate()")
//    public Object doAroundCreate(ProceedingJoinPoint pjp) throws Throwable {
//        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        if (attributes == null) {
//            return pjp.proceed();
//        }
//        Object[] objects = pjp.getArgs();
//        if (objects != null && objects.length > 0) {
//            for (Object arg : objects) {
//                String username = getUserName();
//                if (username != null) {
//                    if (StringUtils.isBlank(BeanUtils.getProperty(arg, createBy))) {
//                        BeanUtils.setProperty(arg, createBy, username);
//                    }
//                    if (StringUtils.isBlank(BeanUtils.getProperty(arg, createTime))) {
//                        BeanUtils.setProperty(arg, createTime, new Date());
//                    }
//                }
//            }
//        }
//        return pjp.proceed();
//    }
//
//    @Around("repositoryUpdate()")
//    public Object doAroundUpdate(ProceedingJoinPoint pjp) throws Throwable {
//        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        if (attributes == null) {
//            return pjp.proceed();
//        }
//        HttpServletRequest request = attributes.getRequest();
//        String token = request.getHeader("token");
//        String username = getUserName();
//        if (token != null && username != null) {
//            Object[] objects = pjp.getArgs();
//            if (objects != null && objects.length > 0) {
//                for (Object arg : objects) {
//                    BeanUtils.setProperty(arg, updateBy, username);
//                    BeanUtils.setProperty(arg, updateTime, new Date());
//                }
//            }
//        }
//        return pjp.proceed();
//
//    }
//
//
//
//    private String getUserName() {
//        return SecurityUtils.getUsername();
//    }

//}
